Architect, design, and document FPGA firmware hierarchies, components, interfaces, and data flows Develop firmware in accordance with detailed designs descriptions Simulate and test firmware components in preparation for integration Define FPGA timing, pinout, and placement constraints Review synthesis and timing reports, address issues Integrate and test firmware on targ